1. Field of the Invention
The present invention relates to a encoding/decoding apparatus and method for an orientation interpolator node.
2. Description of the Related Art
The MPEG-4 Binary Format for Scenes (BIFS) supports a key frame animation technique which uses an interpolator node data formed of field data in which animation information is expressed in a key and key values. The key frame corresponds to a scene which is a base in computer animation. In the key frame animation method, in order to provide smooth animation, piecewise linear interpolation in a large amount of key and key value data is needed. Due to this characteristic, the MPEG-4 BIFS improves data transmission efficiency by quantizing field data in each interpolator node and then compressing the data.
One interpolation method using information on the rotation of an object expresses rotational motion with rotation axes and a rotation angle. Like a Virtual Reality Modeling Language (VRML), the MPEG-4 BIFS supports rotational motion, which is expressed with rotation axes and a rotation angle as described above, through an orientation interpolator node.
Since data sets having linear interpolation characteristics have higher correlation between successive data sets, it is efficient to use a differential coding method using differential values between successive data sets. In the MPEG-4 BIFS, two representative methods are used for encoding field data which is represented by a key and key values of an orientation interpolator node and is to be processed: a method not using Differential Pulse Code Modulation (DPCM) and a method using the DPCM.
First, in the method not using the DPCM, only quantization is performed with respect to keys and key values of data to be encoded. Therefore, because the characteristics of data to be encoded is not considered, the method is inefficient. The method not using the DPCM will now be explained briefly. The field data of an orientation interpolator node is applied and the key values of the field data are converted into values in a quaternion space. Next, the key and key values are quantized. Next, the quantized binary data is restored to field data by inverse quantization, and each restored quaternion value is mapped to a key value format that is formed of rotation axes and a rotation angle. Next, the restored field data of the orientation node is stored. Also, using the restored data, the visual distortion of a quantization error is measured. The distortion might be measured by the following equation 1:                     D        =                                                                              ∑                                      i                    =                    0                                                        N                    -                    1                                                  ⁢                                                                   ⁢                                                      (                                          ɛ                      i                                        )                                    2                                            N                                =                                                                      ∑                                      i                    =                    0                                                        N                    -                    1                                                  ⁢                                                                   ⁢                                                                                                                        Q                        i                                            -                                                                        Q                          ~                                                i                                                                                                  2                                            N                                                          (        1        )            
Where, N represents the number of field data, εi represents the difference between a value (Qi) to be encoded at present (i) and a restored value.({tilde over (Q)}i).
Next, the method using the DCPM considers the correlation among successive data and therefore can improve encoding efficiency higher than the method not using the DCPM. The differences between the two methods will now be explained briefly. In the method using the DCPM, the difference value between a previously restored key values and a value to be encoded at present is calculated before quantization, and the difference value is quantized. By doing so, data characteristics occurred in this differentiation improves encoding efficiency, to some degree.
FIG. 1 is a block diagram for explaining the general principle of the DPCM.
A DPCM unit 100 calculates the difference value (Ei) between a value (Qi) to be encoded at present and a restored value ({hacek over (Q)}i−1), using an subtracter 102. The calculated difference value is quantized in a quantizer 120. The quantized value (Êi) is sent to a destination and an inverse quantizer 140, by which the quantized value (Êi) is inverse quantized ({hacek over (E)}i).
However, in the Orientation Interpolator which interpolates between successive key values by spherical linear interpolation, the DPCM method shown in FIG. 1 cannot have a high efficiency. This can be found when key values which determines the rotational position of an object are analyzed in a quaternion space.
One key value (q) which determines the rotational position of an object on a 3-dimensional space is expressed as a combination of rotation axes and a rotation angle. In the following equations 2, equation (aa) shows how Orientation Interpolator expresses a key value and equation (bb) is an equation for converting the key value into a quaternion.                                                         (              aa              )                        ⁢                                                   ⁢                          (                                                r                  →                                ,                θ                            )                                =                                    (                                                n                  x                                ,                                  n                  y                                ,                                  n                  z                                ,                θ                            )                        ⁢                                                   ⁢                          (                              0                ≤                θ                ≤                π                            )                                      ⁢                                  ⁢                                            (              bb              )                        ⁢                                                   ⁢            q                    =                      (                                          cos                ⁢                                  θ                  2                                            ,                                                                    n                    x                                                                            n                                                                      ⁢                sin                ⁢                                  θ                  2                                            ,                                                                    n                    y                                                                            n                                                                      ⁢                sin                ⁢                                  θ                  2                                            ,                                                                    n                    z                                                                            n                                                                      ⁢                sin                ⁢                                  θ                  2                                                      )                                              (        2        )            
As shown in equation (bb), if rotation axis vectors and rotation angles of two quaternions have the same absolute values and opposite signs on the quaternion space, the two quaternions are the same. This means that in the physical aspect, two rotational motions are the same and the factors affecting a rotational motion are the rotation axis direction and rotation angle, and not the rotation axis vectors. Therefore, the quaternion expression which represents the rotational motion of an object successfully expresses the rotation axis direction and rotation angle which are factors affecting the rotational motion.
Meanwhile, the DPCM method of FIG. 1, in which equation (aa) is used for calculating time differential value between key values indicating rotation transformations, considers the difference between rotation axis vectors, and therefore does not show correlation of changes in rotation axis directions with respect to time changes and encoding efficiency is lowered.
Meanwhile, since data sets having linear interpolation characteristics have high correlation between successive data, a predictive coding method may be used. In the predictive coding method, current data input is predicted based on neighboring information which is previously encoded and decoded. Then, the information to be encoded at present is encoded by obtaining the differential value between the predicted value and the input value, that is, a prediction error.
In the prior art DPCM method, a differential quaternion calculation will now be explained. First, a differential rotation value between a previously restored value and a value to be encoded at present is calculated. The calculated differential rotation value is quantized and then variable length encoded. At the same time, the quantized differential rotation value is inverse quantized, and multiplied by the previously restored value in a quaternion multiplication. By doing so, a restored value corresponding to the value which is encoded at present is obtained and to be used when a next input signal is encoded. Methods for obtaining a differential quaternion includes a method in which a differential quaternion is obtained by a subtraction between factors of quaternions, each of which is formed of four elements, and a method in which a rotation difference between two quaternions is obtained and used as a differential value. First, the method in which a differential value is obtained by a subtraction uses the following equation:{tilde over (Q)}=Q−{circumflex over (Q)}=(q0−{circumflex over (q)}0, q1−{circumflex over (q)}1, q2−{circumflex over (q)}2, q3−{circumflex over (q)}3)T
However, according to this method, the characteristic of a quaternion value, that is, the physical meaning indicated by a rotational movement is not shown, so a rotational position error may occur greatly due to an encoding error which occurs in encoding. To solve this problem, a rotation difference may be used as a differential quaternion value. In this case, assuming that a current input value is Q=(q0, q1, q2, q3)T, and a previously restored value is {circumflex over (Q)}=({circumflex over (q)}0, {circumflex over (q)}1, {circumflex over (q)}2, {circumflex over (q)}3)T, a differential quaternion value is obtained by the following equation:{tilde over (Q)}=Q({circumflex over (Q)})*
As this, in performing orientation interpolator node encoding, when higher correlation between successive quaternion values is considered, the method in which quantization and variable length encoding are performed after obtaining a differential quaternion value corresponding to input rotational information by using a previously restored value can compact the distribution of differential quaternion values if a value can be predicted by an appropriate prediction method. Therefore, this method improves information compression efficiency by improving the efficiency of quantization and variable length encoding.